Such circuits may be implemented, for example, as timer modules in microcontrollers. The modules are developed as individual components, in this instance, or as peripheral modules of the controller, which provide more or less powerful functions for signal pick-up and signal generation in dependence, as a function of time, of one or more clock pulses.
At the present time, different concepts for implementing timers are being used. In this connection, one may basically distinguish between complex and less complex implementations.
In the category of less complex timers, one might mention MTU (multi-function timer pulse unit) of Renesas™ controllers SH7741-HD6417641. It supplies the user with 5 time control units that are connected to 16 I/O pins. Time control units should be understood to mean modules which change their inner state, such as a counter, as a function of one or more clock pulses and/or input signals, store points in time of one or more time bases and/or output signal characteristics. From the MTU, for example, 8 clock pulse sources may be evaluated and patterns may be picked up. In addition, an up to 12-phase PWM (pulse width modulated) signal is able to be generated. PWM signals are input or output signals that change their signal level after certain signal durations which, among other things, are able to be determined by the time control units. In the case of a 12-phase PWM signal, for example, up to 12 different length signal levels are active on one line. Using these modules, only limited timer functions are able to be produced on few I/O pins, which, it is true, does make the controllers cost-effective, but requires much software interaction in order to implement complex applications.
Besides these simple timer modules, there are complex ones, including, for instance, eTPU (enhanced time processing unit) from Freescale™ and GPTA (general purpose timer array) from Infineon. Besides dedicated timer hardware, eTPU offers a programmable microprocessor. The ePTU has 32 time control units that are equipped with dedicated hardware for signal pick-up and signal generation. Each channel is connected to dedicated I/O pins. The broadening of the resources is reached, in the case of Freescale, in that the complete unit of the 32 time control units is doubled together with the microprocessor. GPTA constitutes a different concept for a complex module. It represents a pure hardware implementation of a timer module. The control software runs either on the TriCore™ microcontroller or on its coprocessor PCP (peripheral control processor). Besides hardware for signal pick-up and signal generation, the GPTA has modules for filtering and generating digital clock pulses, and the individual units are able to work with up to 8 clock pulse sources. With regard to the units of the GPTA, one is able to distinguish between 32 GTC's (global timer cells) and 63 LTC's (local timer cells), which are each applied in an array. In an array, the elements lie one behind the other, and are each able to communicate with their predecessor and their successor. The first element in an array is only able to communicate with its successor, and the last element only with its predecessor. GTC's are based on two global 24-bit time bases, and are able to be connected to their respective neighbors in the array and to I/O pins. The assignment of I/O pins and GTC's takes place over a multiplexer circuit. Multiplexers are networks which, based on control lines, switch one or more input signals to one or more output signals. Because of that, each GTC is able to be connected to each I/O pin. The LTC's are 16-bit based, and, in contrast to GTC's, additionally react to the eight clock pulse sources. The LTC's are able to pick up and compare signals and function as counters. The control of I/O pins by the LTC's is also implemented again via a multiplexer.
Because of their limited functionalities, the simpler timer modules are cost-effective to implement, but they do require a great deal of computing power of the microcontroller for implementing complex functionalities. On the other hand, the more complex timer modules are costly, and are scalable only in limited fashion. Thus, in the case of Freescale, the entire eTPU, and in the case of Infineon, the entire GPTA or the LTC array is doubled for the purpose of having more resources available. This may lead to some resources not being used to capacity. In the case of the eTPU, the I/O pins are in addition assigned to time control units. The GPTA gets around these restrictions by multiplexing the I/O pins onto the GTC's and the LTC's. This implementation, however, requires very many logic resources. Furthermore, the GTC's and the LTC's, because of their geographic arrangement in an array, are only able to communicate directly with neighboring cells in order to generate a complex PWM signal, for example.